package jp.dodododo.aop;

import java.lang.reflect.AccessibleObject;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.regex.Pattern;

import javassist.CtBehavior;

public interface Pointcut {

	boolean isApplied(AccessibleObject methodOrConstructor);

	boolean isApplied(Method method);

	boolean isApplied(Constructor<?> constructor);

	boolean isApplied(CtBehavior methodOrConstructor);

	Pattern[] getPatterns();

	Pattern[] getIgnorePatterns();

	int getAccessModifier();

	String getInterceptorStatement();

	boolean isDefaultPointcut();

}
